Automatic subscriber callback system

ABSTRACT

A subscriber callback modem, includes a source of callback data. A modem is coupled to a subscriber telephone line, and a control circuit is coupled between the data source and the modem, for conditioning the modem to automatically call a central computer and transfer the callback data from the data source to the central computer.

The present patent application claims priority of PCT applicationPCT/US96/20514 filed on Dec. 17, 1996 and provisional U.S. patentapplication Ser. No. 60/009178 filed on Dec. 22, 1995.

FIELD OF THE INVENTION

The present invention relates to a system in a remote location which iscapable of operating totally automatically to call to a central computerunder varying operating conditions, and transfer callback data from theremote location to the central computer.

BACKGROUND OF THE INVENTION

Current programming distribution systems for television and interactivetelevision programming include provisions or distribution ofpay-per-view programs. Ensuring that subscribers can order and arecharged properly for viewing pay-per-view programs is a problem in suchsystems. This problem has two aspects. First, it should be easy for asubscriber to order a pay-per-view program, and second the subscribermust be properly charged when a pay-per-view program is ordered andviewed.

In a cable distribution system, the subscribers are in a restrictedgeographical location around the cable head end, and there are arelatively low number of subscribers to that head end, e.g. generallyone town. In such systems, to order a pay-per-view program thesubscriber calls the cable provider on the telephone and speaks to acable provider employee. This employee, then arranges to have propercodes sent via the cable connection to that subscriber's cable box todescramble the pay-per-view program that was ordered, and revert toscrambling that channel when the program is over. The fee for viewingthat pay-per-view is added to the subscriber bill at the same time.Because of the geographical proximity and relatively low number ofsubscribers, the telephone order system is a workable solution in suchsystems.

However, in a satellite distribution system, the subscriber locationsare disbursed over a very wide geographical area, e.g. an entirecontinent, and there are several orders of magnitude more customers in asatellite distribution system than in any single cable head end. Thus, aphone order system in not practical in a satellite distribution system.It has been proposed, therefore, that the satellite receiver at eachsubscriber location maintain in a memory a record of any pay-per-viewprograms viewed by the subscriber. The record of such programs, isreported to a central location via a telephone/modem link, a processtermed callback.

Telephone/modem links between cooperating computers are very well known.However, in the case of a satellite receiver, the callback modem willnot be a part of a computer system under control of a computer operator.Instead, the callback modem must operate totally automatically. Severalproblems exist when a telephone modem is used to call back informationwithout operator control and/or intervention. Because a callback canoccur automatically at a predetermined time, without any knowledge ofwhat the subscriber is doing, the callback mechanism needs to ensurethat such a callback can occur without interfering with what thesubscriber is doing, and without causing interference with ordegradation of the subscriber's phone operation. This, in turn, hasseveral aspects. First, the callback modem must release the telephoneline whenever the subscriber wants access to the phone.

Second, the callback modem must be able to operate automatically withtelephone central offices which may have abnormal interface behaviors.Some of the abnormal interfaces presented by central offices include:very short dial tones; pulse dial only; distorted dial tones; 60 Hzmodulation on the dial tone; no dial tone; fast busy return tone; longdelay before dial tone; fluctuation telephone line current duringtelephone access; and/or fluctuating current between off hook operation.

Third, the callback modem must be able to transfer the subscriber datathrough unknown distortions introduced by the telephone line connectionsbetween the callback modem and the central computer. Some distortionsmay be compensated by utilizing an adaptive equalizer, in a knownmanner. However, in some cases, the dynamic conditions of the telephoneline, line loss conditions at the called modem location, and distortionspresented. by the modem coupling transformer are not correctable usingan adaptive equalizer.

EP 0 527 072 A2 issued to White et al. discloses a telephonedial-inbound data acquisition system with demand reading capability andU.S. Pat. No. 4,132,864 issued to Joseph S. Feng discloses a device fordetecting a telephone off-hook situation.

The above mentioned problems must be addressed and overcome in a desiredcallback modem adapter for totally automatic operation.

BRIEF DESCRIPTION OF THE INVENTION

In accordance with principles of the present invention, a subscribercallback modem includes a source of callback data. A modem is coupled toa subscriber telephone line, and a control circuit is coupled betweenthe data source and the modem, for conditioning the modem toautomatically call a central computer and transfer the callback datafrom the data source to the central computer

BRIEF DESCRIPTION OF THE DRAWING

In the drawing:

FIG. 1 is a block diagram of a callback modem incorporating the presentinvention;

FIG. 2 is a block diagram illustrating the procedures performed by thecontrol circuit of the callback modem illustrated in FIG. 1 when makinga call back;

FIG. 3 is a flow diagram illustrating the operation of the telephoneline access portion of the block diagram illustrated in FIG. 2;

FIG. 4 is a block diagram illustrating the operation of the dialingportion of the block diagram illustrated in FIG. 3;

FIG. 5 is a block diagram illustrating the operation of the pulse/tonedialing detector of the block diagram illustrated in FIG. 3;

FIG. 6 is a block diagram illustrating the blind dialing operationillustrated in FIG. 3;

FIG. 7 is a block diagram illustrating the operation of the pickupdetector illustrated in FIG. 2;

FIG. 8 is a block diagram illustrating the operation of the dataconnection verification process illustrated in FIG. 2;

FIG. 9 is a time line diagram illustrating the transfer of data betweenthe callback modem and the central computer.

DETAILED DESCRIPTION

In the illustrated embodiment, a callback modern is controlled usingstandard modem control codes, such as the codes originally proposed byHayes Company. One skilled in the art will understand that any modemwhich may be controlled by, and which provides status signals to, amicrocomputer may be used in the present invention.

FIG. 1 is a block diagram of a callback modem incorporating the presentinvention. In FIG. 1 an input terminal 5 is coupled to a subscribertelephone company (TELCO) line. The input terminal may include, forexample, a standard RJ11 connector. The input terminal 5 isbidirectionally coupled to a terminal of a telephone company (TELCO)line interface circuit 10. The telephone company line interface circuit10 includes isolation and protection circuitry which protects theremainder of the illustrated circuitry from electromagnetic interference(EMI), electrostatic discharge (ESD), lightning strikes, and so forth.The serial connection of a switch hook 20, one winding of a modemtransformer 30 and a current detection circuit 40 is coupled betweenrespective loop terminals of the telephone company line interfacecircuit 10.

A second winding of the modem transformer 30 is coupled to bidirectionaldata terminals of the modem 50 through a controllable transmitattenuator 80, which operates on outgoing modem 50 data only. An outputterminal of the current detection circuit 40 is coupled to an inputterminal of a control circuit 60. A first control output terminal of thecontrol circuit 60 is coupled to a control input terminal of the switchhook 20, a second control output terminal of the control circuit 60 iscoupled to a control input terminal of the controllable transmit.attenuator 80, an d a bidirectional control terminal of the controlcircuitry 60 is coupled to a corresponding control terminal of the modem50. A bidirectional data terminal of the control circuit 60 is coupledto a corresponding data terminal of the satellite receiver 70, whichreceives data from a satellite antenna 72.

The control circuit 60, which may, for example, include a processor,controls the operation of the callback modem illustrated in FIG. 1. Theoperation of the modem illustrated in FIG. 1 may be better understoodwith reference to FIGS. 2 through 9. In general, when it is desired toconnect the modem 50 to the telephone company line (e.g. at apredetermined time of day), the control circuit 60 supplies a controlsignal to the switch hook which conditions the switch hook 20 to becomeconductive, termed going off-hook. This enables loop current to flowthrough the switch hook 20, transformer 30 and current detectioncircuitry 40. The control circuit 60 then sends control signals to andreceives status signals from the modem 50, and receives a signal fromthe current detector 40 indicating the level of current flowing thoughit. The control signal then conditions the modem 50 to connect to theremote computer. When the modem is connected to the remote computer, thecontrol circuit 60 receives data from the satellite receiver circuitry70 to communicate the pay-per-view (or any other such information) tothe central computer. The control circuit 60 partitions this data intopackets, and supplied these packets to the modem for transmission to theremote computer. When the information transfer is completed, the controlcircuit 60 conditions the modem to terminate the connection to theremote computer, then conditions the switch hook to becomenon-conductive, termed going on-hook.

More specifically, referring to FIG. 2, the callback modem beginsoperation at block 100. When the callback modem desires to make the callback to the central computer, block 200 is entered in which thetelephone call is made. A test is made to determine whether thesubscriber line is in use (i.e. the subscriber is using the telephone)in block 300. If it is in use, the control circuit 60 supplies controlsignals to the switch hook 20 which conditions it to becomenon-conductive, termed going on-hook, and the call is tried again later.If on the other hand, the telephone is not in use, then the controlcircuit 60 supplies control signals to the modem 50 which conditions itto dial the telephone number of the remote computer.

Once the telephone number of the remote computer is dialed in block 300,the control circuit 60 supplies a control signal to the modem 50conditioning it to attempt to establish a data connection to the centralcomputer in block 400. Status signals from the modem 50 are analyzed bythe control circuit 60 to determine whether a connection has beenestablished. If not, various connection parameters are varied, in amanner to be described in more detail below, in an attempt to establisha connection.

When a connection has been established in block 403, data transfer isinitiated between the callback modem and the remote computer in block500. Data from the receiver 70 is supplied to the modem 50, which, underthe control of the control circuit 60 partitions the data into packetswhich are transmitted to the central computer separately. The remotecomputer, when it receives a packet sends an acknowledgment packet backto the callback modem, acknowledging accurate reception of the packet.When the acknowledgment is received by the callback modem, the next datapacket is sent to the central computer, and so forth. Data transfer fromthe central computer to the callback modem is performed in the samemanner. During the data transfer in block 500, the connection ismonitored in block 400 to ensure it is maintained. In addition, duringall phases of the call, the subscriber telephone line is monitored inblock 300 to detect if the subscriber has picked up the telephone duringthe data call. If the subscriber picks up the telephone at any timeduring the data call, the callback modem immediately releases thetelephone line, and will attempt to reestablish the connection at alater time.

FIG. 3 is a flow diagram illustrating the operation of the telephoneline access portion of the block diagram illustrated in FIG. 2. Whenblock 200 (of FIG. 2) is entered, indicating the start of a callbackmodem call, step 210 is entered. In block 210, first the modem 50 (ofFIG. 1) is initialized in response to control signals supplied by thecontrol circuit 60. In a preferred embodiment, this initializationincludes: (1) setting the modem 50 to dial whether or not a dial tone isdetected, and to detect a busy signal (code X3 in the Hayes Corporationcommand set); (2) setting the time to wait for a carrier after dialingto 30 seconds (code S07−30); (3) setting the time to wait before blinddialing to two seconds (code S06=2).

After the modem 50 is initialized as described above, the telephoneconnection is tested to detect a dial tone. In a preferred embodiment,this is done by initiating a dialing sequence and waiting for a dialtone, but not performing the dialing itself (code ATDTW;). The modem 50generates one of three responses: a dial tone has been detected(response OK in the Hayes Corporation response set); a busy signal hasbeen detected (response BUSY); or no dial tone has been detected(response NO DIAL TONE). If a dial tone is detected response OK), thecallback may be made by entering block 250, to be described in moredetail below. If a busy signal is detected, then the call is attemptedat a later time by reentering block 210.

If no dial tone is detected, then block 220 is entered. The processingin block 220 is identical to that in block 210. That is the modem isreinitialized, and the phone line tested to detect a dial tone. As withblock 210, if a dial tone is detected (response OK), the callback may bemade by entering block 250. If a busy signal is detected, then the callis attempted at a later time by reentering block 210. If no dial tone isdetected in block 220, block 230 is entered.

The processing in block 230 is nearly identical to that in block 220.That is the modem is reinitialized, and the phone line tested to detecta dial tone. As with blocks 210 and 220, if a dial tone is detected(response OK), the callback may be made by entering block 250. If a busysignal is detected, then the call is attempted at a later time byreentering clock 210. If, however, no dial tone is detected in block230, then it is assumed that the dial tone is sufficiently non-standardthat the modem 50 cannot accurately detect it's presence. In this caseblock 240 is entered in which the number will be dialed without waitingfor a dial tone to be detected, in a manner to be described in moredetail below.

FIG. 4 is a block diagram illustrating the operation of the dialingportion 250 of the block diagram illustrated in FIG. 3. In FIG. 4, whena dial tone has been detected by any of the blocks 210, 220 or 230 ofFIG. 3, the call is dialed in block 250. The first time block 250 isentered upon power up, or upon a reset, block 252 is entered, in whichthe type of dialing, either tone or pulse, acceptable to the centraloffice, is detected, as will be described in more detail below. Undercontrol of the determination made by the tone/pulse detector block 252,if the central office accepts only pulse dialing, then the left side ofFIG. 4 is performed, and if the central office accepts tone dialing,then the right side of FIG. 4 is performed, as indicated by the smalldecision block 253 and dashed line from tone/pulse detector block 252 tothe decision block 253.

Referring now to pulse-dial-only central offices, when a centralcomputer is to be dialed, the modem 50 (of FIG. 1) is initialized inblock 254. In a preferred embodiment, the control circuit 60 suppliescommands to the modem 50 conditioning it to not wait for dial tonebefore dialing, but to recognize a busy signal (command X3); sets thetime to wait before blind dialing to 2 seconds (command S06=2); and setsthe time to wait for a carrier after dialing to 30 seconds (commandS07=30). The modem 50 then connects to the telephone line for pulsedialing and waits for a dial tone, but doesn't dial the number (commandATDWP;). If the modem receives a dial tone, the modem will issue aresponse to indicate this (response OK). Any other response from themodem 50 results in a return to block 210 (of FIG. 3, where the processof making the callback is restarted.

If the modem 50 receives a dial tone in block 254, block 256 isperformed. In block 256, the portion of the control circuit 60 (ofFIG. 1) which detects when the subscriber picks up the telephone isdisabled. Then the telephone number of the remote computer system ispulse-dialed (command DP[telephone number]). After the telephone numberis dialed, the control circuit 60 reenables the pickup detector. If themodem 50 successfully connects to the remote computer after dialing, themodem 50 issues a response indicating this (response CONNECT). The callis now completed, as illustrated in block 258, and data transfer willtake place. The next time block 250 is entered, there is no need todetect whether the central office is pulse-dial-only or tone dial, soblock 252 will not be performed, and block 254 will be performed onentry, as indicated by the dashed line from block 258 to block 254.

Referring now to tone dial central offices, when a central computer isto be dialed, the modem 50 (of FIG. 1) is initialized in block 260. In apreferred embodiment, the control circuit 60 supplies commands to themodem 50 conditioning it to not wait for dial tone before dialing, butto recognize a busy signal (command X3); sets the time to wait beforeblind dialing to 2 seconds (command S06=2); and sets the time to waitfor a carrier after dialing to 30 seconds (command S07=30). The modem 50then connects to the telephone line for tone dialing and waits for adial tone, but doesn't dial a number (command ATDWT;). If the modem 50receives a dial tone, the modem 50 will issue a response to indicatethis (response OK). Any other response from the modem 50 results in areturn to block 210 (of FIG. 3) where the process of making the callbackis restarted.

If the modem 50 receives a dial tone in block 260, block 262 isperformed. In block 262, the portion of the control circuit 60 whichdetects when the subscriber picks up the telephone is disabled. Then thetelephone number of the remote computer system is tone dialed (commandDT[telephone number]). After the telephone number is dialed, the controlcircuit 60 reenables the pickup detector. If the modem 50 (of FIG. 1)successfully connects to the remote computer after dialing, the modem 50issues a response indicating this (response CONNECT). The call is nowcompleted, as illustrated in block 258, and data transfer will takeplace. The next time block 250 is entered, there is no need to detectwhether the central office is pulse-dial-only or tone dial, so block 252will not be performed, and block 260 will be performed on entry, asindicated by the dashed line from block 258 to block 260.

FIG. 5 is a block diagram illustrating the operation of the pulse/tonedialing detector of the block diagram illustrated in FIG. 3. Theoperations illustrated in FIG. 5 are performed once, the first time thecallback modem dials the remote computer after initial powerapplication, or after a reset, as described above. In block 270, themodem 50 (of FIG. 1) is initialized. In a preferred embodiment, theinitialization includes beginning a tone dialing sequence dialing only asingle number, e.g. “1” (command DT1;); disabling the pickup detector;and setting the time to wait for a carrier after dialing to 7 seconds(command S07=7). Then, in block 272, the modem 50 is conditioned todetect a dial tone (command DTW;). If a dial tone is detected, the modemproduces a response to indicate this (response OK). In this case, thecentral office is a tone dial central office. The modem 50 isconditioned to hang up in block 274, and one dialing will be used. If adial tone is not detected, the modem produces a response to indicatethis (response NO DIAL TONE). In this case, the central office is apulse-dial-only central office. The modem 50 is conditioned to hang upin block 276, and pulse dialing will be used.

Referring again to FIG. 3, if a dial tone is not detected after threetries (blocks 210, 220, and 230), then it is assumed that the dial tonefrom the central office is non-standard in a way that makes itundetectable by the modem 50 (of FIG. 1). In this case, blind dialing isperformed in block 240. FIG. 6 is a block diagram illustrating the blinddialing operation 240 illustrated in FIG. 3.

In FIG. 6, a first attempt to blind dial is made, in block 241, bywaiting 7 seconds for a dial tone, then dialing, whether a dial tone isdetected or not, in a manner to be described in more detail below. Ifthat blind dialing is unsuccessful, an attempt is made by waiting 14seconds for a dial tone in block 246, and if that attempt isunsuccessful, and attempt is made by waiting 21 seconds in block 247. Ifthat attempt is unsuccessful, then the entire sequence is repeated. Ifany of the attempts successfully detect a dial tone, then the number isdialed as illustrated in block 250 of FIG. 3).

Referring specifically to block 241, in a blind dialing attempt, themodem 50 (of FIG. 1) is first initialized, as illustrated in block 242.In a preferred embodiment, the modem 50 is conditioned to: dial withoutwaiting for a dial tone, and to recognize a busy signal (command X3);set the time to wait before blind dialing to 7 seconds (command S06=7);to wait 60 seconds for a carrier after dialing (command S07=60); and toset the pick up detector off. Then the telephone number of the remotecomputer is dialed either by pulse dialing in block 243 (commandDP[phone number]) or by tone dialing in block 244 (command DT[phonenumber]). The mode of dialing is alternated. The first time through theloop of blocks 241, 246 and 247, pulse dialing is tried, the second timetone dialing, and so forth. When the telephone number has been dialed inblocks 243 or 244, the pick up detector is reenabled in block 245. Ifthe blind dialing is successful, the remote computer will answer thecall, and communications will be established and the modem 50 willgenerate a status signal to indicate this (response OK). If the blinddialing is unsuccessful, the modem 50 will generate a status signal toindicate this (response NO CARRIER). The status signals from the modem50 are detected, and the appropriate next step taken, as illustrated inFIG. 6.

Referring again to FIG. 2, at all times (except during actual dialing ofthe telephone number of the remote computer, as described in detailabove) a detector 300 monitors the subscriber telephone line to detectwhen the subscriber has picked up the telephone. Referring to FIG. 1,this may be detected by monitoring the current through the loop formedby the switch hook 30, the modem transformer 30 and the current detector40. When a telephone attached to the subscriber telephone line is pickedup, the loop current is shared between the telephone and the callbackmodem, so the current in the callback modem loop will drop. The currentdetector 40 supplies a signal to the control circuit representing thelevel of current passing through the callback modem loop. The controlcircuit monitors the level of this current, and if it drops in asignificant manner, determines that the subscriber telephone was pickedup and hangs up the callback modem by conditioning the switch hook 20 tobecome non-conductive. In such a case, the call to the central computeris made at a later time. If, however, the loop current is relativelylow, then detecting a pickup of the subscriber telephone by detecting adrop in the current becomes unreliable. In this situation, the detectionof a pick up of the subscriber telephone

TABLE I Loop current (ma.) Current detect out Trigger point 16 000 novalid point 18 006 no valid point 20 026 0 25 064 2 30 148 drop of >5035 163 drop of >25 40 175 drop of >25 45 184 drop of >25 50 194 dropof >20 55 196 drop of >20 60 203 drop of >15 65 204 drop of >15 70 208drop of >15 75 210 drop of >15 80 211 drop of >15 85 215 drop of >15 90218 drop of >15 95 220 drop of >15 100 212 drop of >15 105 222 dropof >15 110 223 drop of >15 115 224 drop of >15 120 226 drop of >15

is suspended. However, the pickup detector continues to monitor thelevel of the loop current.

FIG. 7 is a block diagram illustrating the operation of the pickupdetector 300 illustrated in FIG. 2. In FIG. 7, when the callback modemgoes off hook, the pick up detector 300 begins operation in block 301.(Its operation is suspended during dialing, as described above.) Inblock 302, the control circuit 60 conditions the current detector 40 (ofFIG. 1) to supply a signal representing the level of current currentlyflowing through the loop formed by the switchhook 20, modem transformer30 and current detector 40. Table I illustrates the output values from apreferred embodiment of current detector 40.

When the line current is read in block 302, a reference loop currentlevel is established. Then the pick up detector loop is entered in block304. In block 304, the loop current is read again. If the loop currentvalue read in block 304 is greater than the reference level, or thereference level is too low for accurate pick up detection (less than 011in the preferred embodiment, then block 314 is entered. If, however, theloop current value read in block 304 is less than the reference valueand the reference value is high enough for accurate pick up detection,this might indicate that the subscriber has picked up the telephone. Inthis case block 306 is entered. In block 306, the loop current read inblock 304 and the reference value are evaluated to determine if theyaccurately represent the pickup of a subscriber telephone.

Referring again to Table I, each value of loop current has a criteriawhich indicates a valid pick up indication in block 306. Specifically,if the reference level is less than 011, then there can be no valid pickup indication (described above). If the reference level is less than020, then a valid pick up is indicated if the loop current read in block304 is 000. If the reference level is less than 060, a valid pickup isindicated if the loop current is less than or equal to 002. If thereference level is less than 100 then a valid pickup is indicated if theloop current is less than or equal to 010. If the reference level isless than 160, a valid pickup is indicated if the loop current drops bygreater than 050. If the reference level is less than 180, a validpickup is indicated if the loop current drops by greater than 025. Ifthe reference level is less than 200, a valid pickup is indicated if theloop current drops by greater than 20. And, if the reference level isless than 256, a valid pickup is indicated if the loop current drops bygreater than 15.

If a valid pick up is indicated, then a count of valid pick upindications is incremented in block 308. The count is evaluated in block310. If the count is greater than a predetermined maximum count, then itis assumed that the subscriber telephone has been picked up, and thecall back modem hangs up in block 312. In a preferred embodiment, thepredetermined maximum value is 7. In this case, the call back isrepeated at a later time. If the count has not reached the maximumcount, then block, then block 318 is entered.

Referring again to block 304, if the loop current value read in block304 is greater than the reference level, or the reference level is toolow for accurate pick up detection (less than 011 in the preferredembodiment, then block 314 is entered. In block 314, the valid pick upindication count is decremented until it reaches zero, then block 316 isentered. Referring again, to block 306, block 316 is also entered, if novalid pickup indication is received. In block 316, the reference levelis adjusted to generally follow slow variations in the loop current. Ina preferred embodiment, an eight sample running average is maintained,as illustrated in equation (1). After the reference value is adjusted inblock 316, block 318 is entered. Referring again to block 310, block 318is also entered if the valid pick up indication count is less than thepredetermined maximum count. In block 318, the loop waits until it istime to take another loop current reading in block 304. In a preferredembodiment, the delay is approximately 100 milliseconds (ms), and morespecifically 110 ms. At the end of the delay time, another loop currentreading is taken in block 304, and the process described above repeats.$\begin{matrix}{{REF}_{new} = \frac{{{REF}_{old} \times 7} + {{LOOP}\quad {CURRENT}}}{8}} & (1)\end{matrix}$

The quality of the telephone transmission lines between the callbackmodem and the remote computer can vary to such an extent that a means isnecessary to adjust the signal power sufficiently to establish reliabledata communications. Referring to FIG. 1, the controllable transmitattenuator 80 is conditioned to reduce signals from the modem 50 to themodem transformer 30 by −14 dB, by −10 dB, by −6 dB, or to pass themunchanged (i.e. 0 dB) in response to a control signal from the controlcircuit 60. In addition, it is known that a lower baud rate will be ableto reliably transmit data in the presence of noise which would preventreliable transmission at a higher baud rate. In the present Invention,both the amplification factor and the baud rate are varied in an attemptto establish reliable data communication.

FIG. 8 is a block diagram illustrating the operation of the dataconnection verification process 400 illustrated in FIG. 2. Once thecallback modem has connected to the remote computer, reliable datacommunications is established as illustrated in FIG. 8. First, anattempt is made to establish communications at the highest availabledata rate. In the illustrated embodiment, this data rate is 2400 baud.One skilled in the art will understand that faster modems (e.g. 9600baud or 14,400 baud) may also be used in the present invention. In FIG.8, an attempt is made to establish communications at 2400 baud in block410. In block 402, the baud rate of the modem 50 (of FIG. 1) is set to2400 baud, and the transmit attenuator 80 is conditioned to produce anoutput signal at an attenuation factor of 0 dB (i.e. no attenuation). Anattempt is then made to log into the central computer by transmitting alog-in request. If the login attempt is successful, an acknowledgmentwill be received from the central computer, and the remainder of thedata transfer will take place with these parameters.

If the login attempt is unsuccessful, then block 404 is entered, and theattenuation factor of the transmit attenuator 80 is set to −6 dB, andanother log in attempt is made. Again, if successful, the data transfercontinues using those parameters, otherwise block 406 is entered. Inblock 406, the attenuation factor is set to −10 dB and a log in attemptmade, and if that is unsuccessful, block 408 is entered in which theattenuation factor is set to −14 dB.

If none of the login attempts are successful at 2400 baud, then block420 is entered in which the baud rate is set to 1200 baud, and four moreattempts, at the same four respective attenuation factors illustrated inblock 410, are made at 1200 baud. If none of these are successful, thenblock 430 is entered in which the baud rate is set to 300 baud. Fourmore attempts, at the same four respective attenuation factorsillustrated in block 410, are made at 300 baud. If none of those aresuccessful, then it is assumed that a singularly noisy telephoneconnection has been made, and the call is placed again in an attempt toconnect via a less noisy telephone connection.

Once the data connection has been made, then the data is transferredfrom the receiver 70 (of FIG. 1) to the central computer. In thepreferred embodiment, the amount of data transferred from the callbackmodem to the central computer is relatively small, from around 400 bytesto 1,500 bytes. This data is partitioned as one, or possibly twopackets. One skilled in the art will understand that more packets may beformed and transmitted if more data is required to be transferred. Thesepackets are transferred from the callback modem to the central computer.Responses from the central computer to the callback modem are similarlymade by partitioning the return data into packets. Each of the packetsincludes some form of error detection code, e.g. a cyclic redundancycode (CRC).

FIG. 9 is a time line diagram illustrating the transfer of data betweenthe callback modem and the central computer. This data transfer includesdata verification and packet control, as illustrated in block 500 (ofFIG. 2). In FIG. 9 data is represented by rectangles. Data transmittedfrom the callback modem to the central computer is represented byrectangles above the time line, labeled “M” and return data from thecentral computer to the callback modem is represented by rectanglesbelow the time line, labeled “CC”. The topmost time line A) representsthe successful transfer of data from the callback modem to the centralcomputer. A first packet, PACKET 1, is formed from a first portion ofthe callback data, and transmitted from the callback modem to thecentral computer. The central computer checks the CRC of the receivedpacket. If the CRC check indicates the packet was successfully received,the central computer sends an acknowledgment packet, ACK, back to thecallback modem acknowledging successful receipt of the first packetwithin 200 ms of receipt. When the callback modem receives theacknowledgment packet, ACK, from the central computer, it sends the nextpacket, PACKET 2, to the central computer, which again sends anacknowledge packet, ACK, to indicate successful receipt. The datatransfer from the callback modem to the central computer is nowcomplete, and the callback modem terminates the call.

The second time line B) in FIG. 9, represents an unsuccessful transferfrom the callback modem to the central computer. As in time line A), thecallback modem transmits a first packet, PACKET 1, to the centralcomputer. The central computer, however either does not receive thepacket, or the CRC indicates the packet was corrupted on transmission,or some other problem arises making the packet unusable to the centralcomputer. In this case, the central computer does not send anacknowledgment packet to the callback modem. It is also possible thatacknowledgment packet is transmitted by the central computer to thecallback modem, but the check of the CRC in the callback modem indicatesthat the packet was corrupted. In either case, no acknowledgment packetis successfully received. The callback modem waits 2 seconds tosuccessfully receive an acknowledgment packet from the central computer.If it does not successfully receive one within 2 seconds, it resends thefirst packet (RESEND 1), and again waits for an acknowledgment packetfrom the central computer. If the central computer successfully receivesthe resent packet, it sends an acknowledgment packet; and if thecallback modem successfully receives the acknowledgment packet, as intime line A), the transmission proceeds as illustrated in time line A).

However, in time line B), the central computer, again does notsuccessfully receive the data packet, and again, does not transmit anacknowledgment packet. Again, the callback modem waits 2 seconds tosuccessfully receive an acknowledgment packet from the central computer.When none is received, the packet, RESEND 2, is resent a second time. Ifthe central computer successfully receives the packet, it sends anacknowledgment packet; and if the callback modem successfully receivesthe acknowledgment packet, as in time line A), the transmissionproceeds. However, in time line B), the central computer, again does notsuccessfully receive the data packet, and again, does not transmit anacknowledgment packet. After three unsuccessful attempts to transmit apacket, it is assumed that the communication line is too noisy tocomplete the data transfer, and the call is abandoned, and another callis placed.

A similar protocol is followed for data transfers from he centralcomputer to the callback modem. The data to be transmitted from thecentral computer to the callback modem is partitioned into packets, thena packet is transmitted from he central computer to the callback modem.The third time line C) of FIG. 9 represents the successful transfer ofdata from the central computer to the callback modem. The centralcomputer transmits a packet, PACKET, to the callback modem. The callbackmodem receives the packet, PACKET, and checks the CRC If the CRC checkindicates successful reception of the data, an acknowledgment packet,ACK, is sent back to the central computer within 200 ms of receipt ofthe packet. If the central computer successfully receives theacknowledgment packet, it transmits the next packet (not shown), ifnecessary, until all data has been transferred in this manner.

The fourth time line D) of FIG. 9 represents an unsuccessful transfer ofdata from the central computer to the callback modem. In time line D), apacket, PACKET, is transmitted from the central computer to the callbackmodem, as in time line C). That packet is not received successfully bythe callback modem, for reasons described above, and the callback modem,consequently does not send an acknowledgment packet. The centralcomputer waits for 2 seconds to receive an acknowledgment packet. Whenno acknowledgment packet is successfully received in 2 seconds, thepacket, RESEND 1, is resent, in a similar manner to that illustrated intime line B). If no acknowledgment is received again within 2 seconds,the packet, RESEND 2, is resent again. If no acknowledgment packet isreceived again within 2 seconds, the connection is abandoned, and thecall placed again.

It is possible for the callback modem to be connected to a telephonesystem that is so non-standard, or has so much noise on the connectionsthat even the automatic connection process, described in detail above,will not successfully connect to the central computer. In such a case,the data from the satellite link to the callback modem may include otherparameters which may be substituted for the default parameters includedin the automatic connection process described above.

Referring again to FIG. 1, when a long enough time period has elapsed(e.g. a week) without communication from the satellite receiving systemto the central computer via the callback modem, it is assumed that theparameters for the automatic callback modem are not correct forestablishing the data call. In this case, a block of data, containingnew parameters to be used by the automatic connection process describedabove, is transmitted from a central program transmitting location tothis satellite receiving system through the satellite link. This blockof data is embedded in one or more packets, as necessary, each of whichcontain a destination address specifying the specific satellite receiverwhich has not communicated with the central computer. These packets areprocessed by this receiver alone, all in a known manner.

The satellite receiving system receives these packets at the satelliteantenna 72. The packets are processed by the receiver 70, whichrecognizes its own destination address, and operates to extract the newcallback modem parameters and pass those parameters to the controlcircuit 60. The control circuit 60, in turn, attempts to make anothertelephone call to the central computer using these newly receivedparameters. If the telephone call is not successfully placed with theseparameters, another set of parameters may be transmitted from thetransmitting location to this receiving system via the satellite link.This continues until communications is established. If communicationscannot be established by changing parameters, this indicates a severeproblem, in which case the transmission of pay-per-view programs to thisreceiving system is suspended until the problem is diagnosed andcorrected.

In the preferred embodiment, the parameters which may be sent via thesatellite link are maintained in the receiving system in an electricallyerasable and programmable read only memory (EEPROM), and may be embeddedin a single packet. In the preferred embodiment, the packet transmittedfrom the transmitting location containing these parameters contains 11bytes of parameters and one checksum byte. The tables below present thearrangements of the bytes within the control packet, and the assignmentof the bits within each byte. Table II illustrates the arrangement ofthe data bytes within the data portion of the packet. The first columnindicates the byte number, the second column indicates the datacontained within that byte, and the last two columns indicate thedefault values for that byte (stored in the EEPROM of the receivingsystem when manufactured in the factory) in hexadecimal and decimal.Table III illustrates the assignment of bits in the first data byte inthe packet. These correspond to parameters settable in standard Hayescompatible modems, and will not be described in detail here.

Table IV illustrates the assignment of bits in the second data byte ofthe packet. These control the enabling and disabling of differentfunctions In the automatic connection process described in detail above.Bit 7 controls whether the data verification packet control, illustratedin FIG. 8, and described in the associated detailed description, isenabled or disabled. Bit 4 controls whether the phone-in-use detector,illustrated in FIG. 3 and described in the associated detaileddescription is enabled or disabled. Bit 2 controls whether dial tonedetection, also illustrated in FIG. 3 is enabled or disabled. Bits 1 and0 control whether the callback modem will dial in tone mode, in pulsemode, or will determine the proper mode locally, as illustrated in FIG.5.

Table V illustrates the assignment of bits in the third data byte of thepacket. These control the attenuation factor for the DTMF tone dialingtones, the transmit attenuation factor, and the pulse dialingcharacteristics. Bits 7 through 5 control the DTMF attenuation, asillustrated in Table V, and bits 4 through 2 control the transmitattenuation as illustrated in Table V, and also in FIG. 8 and describedin the associated detailed description. Bits 1 through 0 control thecharacteristics of the pulses used in pulse dialing. The characteristicsrepresented by the values 0 and 1 correspond to values available inHayes compatible modems. The characteristics represented by values 2 and3 correspond to the make/break ratios of the characteristics representedby values 0 and 1, respectively, but with doubled dialing rates of 20pulses per second.

Byte 4 contains the delay in seconds from the end of dialing until thepickup detection is reenabled, as illustrated in FIG. 4, and describedin the associated detailed description. Byte 5 contains the number ofconsecutive pickup indicative samples which must be received before itis assumed that the subscriber has picked up the telephone. This isillustrated in FIG. 7 and described in the associated detaileddescription. The remainder of the bytes in the control packet representS register values, which are known in Hayes compatible modems, and arenot described in detail here.

The callback modem described above is able to automatically dial into acentral computer with no operator intervention from a wide variety oftelephone systems having a wide variety of standards, and variationsfrom such standards. Such a modem is also able to receive new dialingand connection parameters if attempts to telephone the central computerare unsuccessful. Such a modem is also able to detect when the telephonesubscriber line is busy and wait until it is free, and further candetect when a subscriber picks up the telephone during a data call, andimmediately end the data call.

TABLE II Callback Parameters Default Value Hexa- Byte # Descriptiondecimal Decimal 1 Data format/mode 0x37 55 (See below) 2 Enable flags0x3E 62 (See below) 3 DTMF Atten./Transmit Atten./Make- 0x00 0 BreakRatio (See below) 4 Pick-up detection delay 0xoA 10 (Delay from dialingto enabling pickup detection in seconds) 5 Pick-up detection samples0x05 5 (Number of samples {100 ms apart} to declare valid pickup) 6 S60x02 2 (Wait for dial tone in seconds {blind dial pause time}) 7 S7 0x3C60 (Wait time for data carrier in seconds {no answer time out}) 8 S80x02 2 (Pause time for comma in seconds) 9 S9 0x06 6 (Carrier detectresponse time in 100 ms units) 10 S10 0x0E 14 (Lost carrier to hang updelay in 100 ms units) 11 S11 0x5F 95 (DTMF dialing speed in millisec-onds {DTMF tone on timer})

TABLE III Data Format/Mode Bit # Description 7 1 = 1800 Hz guard toneenabled 0 = guard tone disabled 6 (Reserved) set to “0” 5-4 3 =mark/none parity 2 = odd parity 1 = space parity 0 = even parity 3 1 =BELL 0 = CCITT 2-1 3 = 2400 baud 2 = 1200 baud 1 = Reserved 0 = 300 baud0 (Reserved) set to “1”

TABLE IV Enable Flags Bit # Description 7 1 = Data verification packetcontrol enabled 0 = Data verification packet control disabled 6(Reserved) set to “0” 5 (Reserved) set to “1” 4 1 = Phone-in-use detectenabled 0 = Phone-in-use detect disabled 3 1 = Pickup detect enabled 0 =Pickup detect disabled 2 1 = Dial tone detection enabled 0 = Dial tonedetection disabled 1-0 3 = Reserved 2 = Local capability test 1 = Tonedialing 0 = Pulse dialing

TABLE V DTMF Attenuation/Transmit Attenuation/Make-break ratios Bit #Description 7-5 DTMF Attenuation in 2 dB steps, 0 to 14 dB 4-2 TransmitAttenuation in 2 dB steps, 0 to 14 dB 1-0 3 = 33/67 @ 20 pps 2 = 39/61 @20 pps 1 = 33/67 @ 10 pps (UK/HK) 0 = 39/61 @ 10 pps (USA/Canada)

What is claimed is:
 1. A subscriber callback system comprising: a sourceof callback data; a modem coupled to a first communications linkcomprising a subscriber telephone line; and a control circuit, coupledbetween the data source and the modem, for automatically placing a callby conditioning the modem to connect to the subscriber telephone line,to call a central computer, to transfer the callback data from the datasource to the central computer, and to disconnect from the subscribertelephone line; and the control circuit automatically places the call inresponse to a predetermined calling parameter; the callback modemfurther comprises a receiver, coupled to the control circuit and coupledto a second communications link for receiving a new calling parametervia the second communications link; the control circuit replaces thepredetermined calling parameter with the new calling parameter forcontrolling the modem during subsequent calls to the central computer;said new calling parameter is received from the central computer via thesecond communications link and replaces the predetermined callingparameter in response to the subscriber callback system failing tocommunicate with the central computer via the first communications linkin accordance with a predetermined condition.
 2. The subscriber callbacksystem of claim 1 wherein the predetermined condition comprises apredetermined time period.
 3. The subscriber callback system of claim 2wherein the second communications link comprises a television signaldistribution system.
 4. The subscriber callback system of claim 3wherein the television signal distribution system comprises a satellitedistribution system.
 5. The subscriber callback system of claim 4further comprising a phone-in-use detector for detecting whether thesubscriber telephone line is in use at the time the control circuitattempts to automatically call the central computer; and wherein thepredetermined calling parameter and the new calling parameter controlenabling of the phone-in-use detector.
 6. A method of providing asubscriber callback system comprising the steps of: a) connecting amodem to a first communications link comprising a subscriber telephoneline for automatically placing a first call to a central computer inaccordance with a predetermined calling parameter for transferringsubscriber callback data to the central computer; b) receiving a newcalling parameter via a second communications link; c) replacing thepredetermined calling parameter with the new calling parameter; and d)using the new calling parameter for controlling the modem during asecond call to the central computer; said new calling parameter isreceived via the second communications link and replaces thepredetermined calling parameter in response to the subscriber callbacksystem failing to communicate with the central computer via the firstcommunications link in accordance with a predetermined condition andsaid new parameters are transmitted from the central computer via thesecond communication link.
 7. The method of claim 6 wherein steps (b)through (d) occur in response to failing to successfully establishcommunication between the modem and the central computer via the firstcommunications link in accordance with a predetermined condition duringstep (a).
 8. The method of claim 7 wherein the predetermined conditioncomprises a predetermined time period and step (a) fails to communicatewith the central computer via the first communications link during thepredetermined time period.
 9. The method of claim 8 wherein the secondcommunications link comprises a television signal distribution system.10. The method of claim 9 wherein the television signal distributionsystem comprises a satellite distribution system.
 11. The method ofclaim 10 wherein the step (a) of connecting the modem to the centralcomputer via the first communications link comprises a step of detectingwhether the subscriber telephone line is in use before calling thecentral computer, and wherein the predetermined calling parameter andthe new calling parameter control enabling the detecting step.
 12. Asubscriber callback system comprising: a source of callback data; amodem coupled to a first communications link comprising a subscribertelephone line; and a control circuit, coupled between the data sourceand the modem, for automatically placing a call by conditioning themodem to connect to the subscriber telephone line, to call a centralcomputer, to transfer the callback data from the data source to thecentral computer, and to disconnect from the subscriber telephone line;and the control circuit automatically places the call in response to apredetermined calling parameter; the callback modem further comprises areceiver, coupled to the control circuit and coupled to a secondcommunications link for receiving a new modem parameter via the secondcommunications link; the control circuit replaces the predeterminedcalling parameter with the new modem parameter for controlling the modemduring subsequent calls to the central computer; said new modemparameter is received via the second communications link and replacesthe predetermined calling parameter in response to the subscribercallback system failing to communicate with the central computer via thefirst communications link in accordance with a predetermined conditionand said new modem parameters are transmitted from the central computervia the second communication link.
 13. The system according to claim 12wherein a destination address specifying a specific receiver isreceived.
 14. The system according to claim 13 wherein the receiverrepeats automatically placing a call upon receipt of the new parameters.